#ifndef __MCARC_H_
#define __MCARC_H_

#include <MCPlaneItem.h>
#include <MCPoint2D.h>

class MCArc2D : public MCPlaneItem
{
public:

    MCArc2D();
    MCArc2D(MCPoint2D center, double radius, double startAngle, double endAngle);

    MCPlaneItemType type() override;
    void setPositionAt(const MCPoint2D &at) override;
    void move(const MCVector2 &to) override;
    void scale(double scale) override;
    void transform(const MCMatrix3 &transform) override;

    MCPoint2D center() const;
    MCPoint2D startPoint() const;
    MCPoint2D endPoint() const;
    MCPoint2D midPoint() const;
    double radius() const;
    double startAngle() const;
    double endAngle() const;

private:

    MCPoint2D _center;
    double _radius;
    double _startAngle; // in radians
    double _endAngle;   // int radians

};

#endif // __MCARC_H_
